﻿// Version:1
// Author:Sanket Naik
// Date:July-21-2010 
// Comments:
// 
// 
// 


using System;
using System.Collections.Generic;

namespace ManagedServices.DataTransferObjects
{
    /// <summary>
    /// Provides all the Enum Type DTO's 
    /// </summary>
    public class ReadOnlyDataCollection
    {
        private static readonly List<DependencyType> _dependencyTypes;
        private static readonly List<StartMode> _startModes;
        private static readonly List<MessageState> _messageStates;


        /// <summary>
        /// Initializes the Enum DTO types
        /// </summary>
        static ReadOnlyDataCollection()
        {
            _dependencyTypes = new List<DependencyType>()
                                            {
                                                DependencyType.AppConfig,
                                                DependencyType.StartupAssembly,
                                                DependencyType.Assembly,
                                                DependencyType.Settings
                                            };

            _startModes = new List<StartMode>() { 
               StartMode.Automatic, 
               StartMode.Automatic_Delayed, 
               StartMode.Conditional,
               StartMode.Manual,
               StartMode.Schedule,
               StartMode.Stopped
                                                };

            _messageStates = new List<MessageState>()
            {
                MessageState.New,
                MessageState.Notified,
                MessageState.Processed,
                MessageState.Stale
            };
        }

        /// <summary>
        /// Returns a IEnumerable Collection of DependencyTypes
        /// </summary>
        public static IEnumerable<DependencyType> DependencyTypes
        {
            get { return _dependencyTypes; }
        }

        /// <summary>
        /// Returns a IEnumerable Collection of StartModes
        /// </summary>
        public static IEnumerable<StartMode> StartModes
        {
            get { return _startModes; }
        }

        /// <summary>
        /// Returns a IEnumerable Collection of Message States
        /// </summary>
        public static IEnumerable<MessageState> MessageStates
        {
            get { return _messageStates; }
        }

    }
}
